#ifndef DSPSIMULATOR_DSPREGISTERINFO_H
#define DSPSIMULATOR_DSPREGISTERINFO_H

/**
 * 通用目的寄存器A的枚举
 */
typedef enum class general_purpose_register_A {
    A0 = 0,
    A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15,
    A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31,
    NUM_OF_Reg_A
} RegAKind;

/**
 * 通用目的寄存器A的名称
 */
static const char *RegAName[] = {
        "A0", "A1", "A2", "A3",
        "A4", "A5", "A6", "A7",
        "A8", "A9", "A10", "A11",
        "A12", "A13", "A14", "A15",
        "A16", "A17", "A18", "A19",
        "A20", "A21", "A22", "A23",
        "A24", "A25", "A26", "A27",
        "A28", "A29", "A30", "A31"
};


/**
 * 通用目的寄存器B的枚举
 */
typedef enum class general_purpose_register_B {
    B0 = 0,
    B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, B14, B15,
    B16, B17, B18, B19, B20, B21, B22, B23, B24, B25, B26, B27, B28, B29, B30, B31,
    NUM_OF_Reg_B
} RegBKind;

/**
 * 通用目的寄存器B的名称
 */
static const char *RegBName[] = {
        "B0", "B1", "B2", "B3",
        "B4", "B5", "B6", "B7",
        "B8", "B9", "B10", "B11",
        "B12", "B13", "B14", "B15",
        "B16", "B17", "B18", "B19",
        "B20", "B21", "B22", "B23",
        "B24", "B25", "B26", "B27",
        "B28", "B29", "B30", "B31"
};

#endif //DSPSIMULATOR_DSPREGISTERINFO_H
